1. Field of the Invention
Embodiments of the present invention relate to the field of microcontroller devices. More specifically, embodiments of the present invention pertain to a configurable input/output interface for a microcontroller device.
2. Prior Art
Almost all microcontrollers in today""s marketplace are general purpose units. This means that their market differentiation is obtained through customer application rather than the actual design of the microcontroller. Although there are thousands of microcontrollers available in the marketplace, there are only a few dozen types of peripherals in use. Many of these require special purpose microcontrollers built for specific functions. Better than 50% of the 6 billion-unit market are general purpose units. The remainder is broken into small segments that, surprisingly, are still often not market specific. Examples of these products are integrated Liquid Crystal Display (LCD) drivers and controllers and integrated communications protocols, such as Campus Area Network (CAN). These use general purpose chips that can be found in a variety of other devices on the markets.
Despite the thousands of different microcontrollers from more than 20 different vendors, designers still have trouble finding one that is a perfect fit for their application. Often, once the design has started, they find a better way to solve the problem, marketing requests a different feature set, or the design turns out to require more capability than previously estimated. In many of these situations, the designer ends up needing a completely different part description, and is unable to find one that is compatible with the work already completed.
One approach to the above stated problem is to ask for a custom configuration from a microcontroller manufacturer Incorporating all of the necessary functions and thus eliminating external chips. This only works for very large volume customers, usually requires a Non Recurring Engineering (NRE), and once the design has begun, changes would cause major delays and increase costs. Custom Application Specific Integrated Circuits (ASICs) with processor cores are also available, but require a silicon design expertise not found in embedded system engineering teams. The long development times and large volume requirements still exist. Solutions for smaller designs and with greater flexibility can be found in gate arrays and programmable logic devices. However, these solutions still require silicon design expertise and tend to be much more expensive.
Typically, input/output pins on microcontrollers have a dedicated system function. For example, certain pins are coupled to a microprocessor, while other pins may be clock pins, data I/O pins, etc. These assignments are fixed because, depending on the system function determined for the pin, different hardware is required to be associated with the pin. This is one of the factors which limits microcontroller designs currently. For a microcontroller circuit to be fully programmable, the I/O pin assignments must be configurable as well. This would allow a designer greater flexibility in designing the circuit and, if necessary, to change the pin assignment later in the design process. Since the pin assignment would be a software modification only, no delays or extra costs would be incurred in, for example, moving a pin function to a different location on the microcontroller. Additionally, the pin count can be reduced If multiple circuit functions can be assigned to a given I/O pin. This would lead to a reduction of fabrication costs and an increase in circuit production.
It would be advantageous then, to provide a configurable input/output interface which gives designers the flexibility to specify which resource on the microcontroller device will be accessible to a given I/O pin. A further need exists for an I/O interface which can access the rest of the microcontroller device functions through a configurable interface and can be reconfigured dynamically.
Accordingly, embodiments of the present invention provide a configurable input/output interface which allows designers to specify which resource on the microcontroller device will be accessible to a given I/O pin. Furthermore, embodiments of the present invention can access the rest of the microcontroller device functions through a configurable interface and can be reconfigured dynamically (e.g., per clock cycle). The present invention provides a configurable input/output interface which gives designers the flexibility to easily create customized configurations which incur no NRE and require no unusual design skills.
The present invention is an input/output (I/O) pin with a configurable interface to a microprocessor, and to a global mapping which determines access to functional units on the microcontroller. The I/O pin can be selectively coupled to the global mapping or to the microprocessor on each clock cycle. The mapping configuration selectively couples a different functional unit or units of the microcontroller to access the I/O pin on each clock cycle. The interface between the I/O pin and the rest of the system can be dynamically configured by software created or modified by a user, or by hardware. The present invention facilitates repositioning pin locations on a microcontroller because it is a software modification rather than a hardware modification. The present invention further enables the microcontroller functions to be configured by the user rather than by the microcontroller vendor.
These and advantages of the present invention will become obvious to those of ordinary skill in the art after having read the following detailed description of the preferred embodiments which are illustrated in the various drawing figures.